$(function () {
    //变量抽取
    var caseReportBill_dataGrid = $("#caseReportBill_dataGrid");
    var caseReportBill_dialog = $("#caseReportBill_dialog");
    var caseReportBill_form = $("#caseReportBill_form");
    var caseReportBillItem_dialog = $("#caseReportBillItem_dialog");
    var caseReportBillItem_form = $("#caseReportBillItem_form");

    /*查看只读的对话框与表单*/
    var caseReportBillItemView_dialog = $("#caseReportBillItemView_dialog");
    var caseReportBillItemView_form = $("#caseReportBillItemView_form");


    caseReportBill_dataGrid.datagrid({
        url: "/caseReportBill/query.do",
        fitColumns: true,//列自适应
        fit: true,
        columns: [[
            {
                field: 'status', title: '报案单据状态', width: 100, formatter: function (value, row, index) {
                    if (row.status == 0) {
                        return "已报案";
                    } else if (row.status == 1) {
                        return "已受理";
                    } else if (row.status == 2) {
                        return "提交待审核";
                    } else if (row.status == -1) {
                        return "已拒绝受理";
                    }else if (row.status == 3) {
                        return "已审核通过";
                    }
                }
            }
            ,
            {field: 'caseNumber', title: '报案单据号', width: 100},
            {field: 'insuranceBillNumber', title: '保险单号', width: 100},
            {field: 'caseReporterName', title: '报案人姓名', width: 100},
            {field: 'telephone', title: '报案人电话', width: 100},
            {
                field: 'gender', title: '报案人性别', width: 100, formatter: function (value, row, index) {
                    if (row.gender) {
                        return "男";
                    } else {
                        return "女";
                    }
                }
            },
            {field: 'reportTime', title: '报案时间', width: 100,sortable:true},
            {field: 'caseLocation', title: '报案地点', width: 100},
            {field: 'plateNumber', title: '报案车牌号', width: 100},
            {field: 'receptionEmployee', title: '接案员工姓名', width: 100,formatter: function (value, row, index) {
                   return row.receptionEmployee?row.receptionEmployee.username:'';
                }},
        ]],
        toolbar: "#tb",//工具
        pagination: true,//分页
        rownumbers: true,//行号
        singleSelect: true,//只允许选择一行
        /*默认的排序参数,需要在列上定义可排序*/
        sortName:'reportTime' ,
        sortOrder:'asc',
    })

    caseReportBill_dialog.dialog({
        width: 270,
        height: 300,
        resizable: true,
        buttons: "#btns",
        closed: true,
        draggable:true,
        onClose: function () {
            caseReportBill_form.form("clear");
        },
        resizeable:true
    })

    caseReportBillItem_dialog.dialog({
        width: 350,
        height: 250,
        draggable:true,
        resizable: true,
        buttons: "#item_btns",
        closed: true,
        onClose: function () {
            caseReportBillItem_form.form("clear");
        },
        resizeable:true
    })

    caseReportBillItemView_dialog.dialog({
        width: 350,
        height: 250,
        draggable:true,
        resizable: true,
        buttons: "#itemView_btns",
        closed: true,
        onClose: function () {
            caseReportBillItem_form.form("clear");
        }
    })
    //方法抽成对象统一管理
    var methodObj = {

        //添加按钮
        add: function () {
            caseReportBill_dialog.dialog("open");
            caseReportBill_dialog.dialog("setTitle", "添加报案单");
        },
        //编辑按钮
        edit: function () {
            var row = caseReportBill_dataGrid.datagrid("getSelected");
            /*发送ajax请求到后台查询当前报案单的状态 , 如果是已受理状态才可以编辑*/

            if (!row) {
                $.messager.alert('提示', '选择需要编辑的报案单', 'info');
            } else if(row.status!=0){
                $.messager.alert('提示', '当前报案单不是已报案状态 ,不可以编辑', 'info');
            } else{
                caseReportBill_form.form("load", row);
                caseReportBill_dialog.dialog("setTitle", "编辑");
                caseReportBill_dialog.dialog("open");
            }
        },

        //受理报案按钮
        acceptcase: function () {
            var row = caseReportBill_dataGrid.datagrid("getSelected");
            /*获取当前选中行的index必须在重载之前*/
            var index =caseReportBill_dataGrid.datagrid("getRowIndex",row)
            if (!row) {
                $.messager.alert('提示', '选择需要受理的报案', 'info');
            } else {
                /*判断当前报案单是否已经受理. 如果已经受理, 那么应该弹出提示框*/
                if (row.status != 0) {
                    $.messager.alert('提示', '该车险报案单不是已报案状态, 不可受理', 'warining')
                    return;
                }
                /*发送ajax 请求到后台, 受理报案 , 传入当前报案单的id */
                $.get('/caseReportBill/acceptCase.do', {caseNumber: row.caseNumber}, function (data) {
                    /*如果返回受理成功, 那么 要打开新的对话框 , 输入 报案现场的详细信息*/
                    if (data.success) {
                        $.messager.alert('提示', '受理报案成功', 'info', function () {
                           caseReportBillItem_dialog.dialog("setTitle", "受理报案, 填入报案明细数据");
                           caseReportBillItem_dialog.dialog("open");
                            /*选中当前受理的报案单*/
                            caseReportBill_dataGrid.datagrid("selectRow",index);
                        })
                    } else {
                        $.messager.alert("提示", data.msg ,'error');
                    }
                    caseReportBill_dataGrid.datagrid("reload");
                });
            }

        },
        reload: function () {
            caseReportBill_dataGrid.datagrid("load");
        },
        save: function () {
            caseReportBill_form.form("submit", {
                url: "/caseReportBill/saveOrUpdate.do",
                success: function (data) {
                    data = $.parseJSON(data);
                    if (data.success) {
                        $.messager.alert('提示', '保存成功', 'info', function () {
                            caseReportBill_dialog.dialog("close");
                            caseReportBill_dataGrid.datagrid("reload");
                        });
                    } else {
                        $.messager.alert('提示', '保存失败', 'warining');
                    }
                }
            })
        },
        //取消按钮
        cancel: function () {
            caseReportBill_dialog.dialog("close")
        },


        /*明细单的对话框按钮绑定的事件*/
        item_save:function(){
            /*获取到当前受理的报案单号码*/
            var acceptedBillRow = caseReportBill_dataGrid.datagrid("getSelected");
            var caseNumber  = acceptedBillRow.caseNumber;
            /*把表单提交到后台保存*/
            caseReportBillItem_form.form("submit", {
                url: "/caseReportBillItem/saveOrUpdate.do?caseNumber="+caseNumber,
                success: function (data) {
                    data = $.parseJSON(data);
                    if (data.success) {
                        $.messager.alert('提示', '保存成功', 'info');
                    } else {
                        $.messager.alert('提示', '保存失败', 'warining');
                    }
                    caseReportBillItem_dialog.dialog("close");
                    caseReportBill_dataGrid.datagrid("reload");
                }
            })
        },
        item_cancel:function(){
            caseReportBillItem_dialog.dialog("close")
        },
        itemview_cancel:function(){
            caseReportBillItemView_dialog.dialog("close")
        },

        /*提交待审核, 生成审核单*/
        submittobeaudited:function () {
            var row = caseReportBill_dataGrid.datagrid("getSelected");
            if (!row) {
                $.messager.alert('提示', '选择需要提交待审核的报案单', 'info');
            } else {
                /*判断当前报案单是否已经受理. 如果未受理, 那么应该弹出提示框*/
                if (row.status != 1) {
                    $.messager.alert('提示', '该车险报案单未受理, 不可以提交审核', 'warining')
                    return;
                }
                /*发送ajax 请求到后台, 提交待审核, 创建一张待审核的单据 , 传入当前报案单的id */
                $.get('/toBeAuditedBill/submitToBeAudited.do', {caseNumber: row.caseNumber}, function (data) {
                    /*如果返回受理成功, 那么 要打开新的对话框 , 输入 报案现场的详细信息*/
                    if (data.success) {
                        $.messager.alert('提示', '提交成功', 'info')
                    } else {
                        $.messager.alert("提示", data.msg ,'error');
                    }
                    caseReportBill_dataGrid.datagrid("reload");
                });
            }
        },

        /*查看点击的报案单的明细单 , 打开只读的对话框*/
        viewitem:function(){
            var row = caseReportBill_dataGrid.datagrid("getSelected");
            if (!row) {
                $.messager.alert('提示', '选择需要查看的报案单', 'info');
            }else if(row.status < 1){
                /*判断当前报案单的状态, 如果当前报案单为已报案或者是已拒绝受理, 那么不可查询*/
                $.messager.alert('提示', '当前报案单未受理, 无报案单明细可查看', 'info');
            } else {
                /*打开对话框, 回显表单 , 从后台数据库查询明细*/
                caseReportBillItemView_form.form("load","/caseReportBillItem/queryByCaseNumber.do?caseNumber="+row.caseNumber);
                caseReportBillItemView_dialog.dialog("setTitle", "查看明细单");
                /*打开对话框*/
                caseReportBillItemView_dialog.dialog("open");
            }
        },

        /*编辑点击的报案单对应的明细单*/
        edititem:function(){
            var row = caseReportBill_dataGrid.datagrid("getSelected");
            if (!row) {
                $.messager.alert('提示', '选择需要编辑的报案单', 'info');
            }else if(row.status < 1){
                /*判断当前报案单的状态, 如果当前报案单为已报案或者是已拒绝受理, 那么不可查询*/
                $.messager.alert('提示', '当前报案单未受理, 无报案单明细可查看', 'info');
            } else if(row.status > 1){
                /*判断当前报案单的状态, 如果当前报案单已经移交审核, 那么不可编辑*/
                $.messager.alert('提示', '当前报案单已经上报审查不可以编辑', 'info');
            }
            else {
                /*打开对话框, 回显表单 , 从后台数据库查询明细*/
                caseReportBillItem_form.form("load","/caseReportBillItem/queryByCaseNumber.do?caseNumber="+row.caseNumber);
                caseReportBillItem_dialog.dialog("setTitle", "编辑明细单");
                /*打开对话框*/
                caseReportBillItem_dialog.dialog("open");
            }
        }
    }

    //按钮统一绑定事件
    $("a[data-cmd]").click(function () {
        var cmd = $(this).data("cmd");
        methodObj[cmd]();
    });
});

//搜索按钮
function mySearch(){
    //获取到查询条件的值
    var  status=$("#status").combobox('getValue');
    var  beginDate=$("#beginDate").datebox('getValue');
    var  endDate=$("#endDate").datebox('getValue');
    $("#caseReportBill_dataGrid").datagrid('load',{status:status,beginDate:beginDate,endDate:endDate});
}